namespace Brjnk.MVVM
{
    using System;

    /// <summary>
    /// </summary>
    public class PropertyWrapperInfo<T>
    {
        public PropertyWrapperInfo(string propertyName, Func<T, object> getter, Action<T, object> setter, Func<object, object> wrapperFactory, bool wrapNull)
        {
            this.PropertyName = propertyName;
            this.Getter = getter;
            this.Setter = setter;
            this.WrapperFactory = wrapperFactory;
            this.WrapNull = wrapNull;
        }

        public string PropertyName { get; private set; }

        public Func<T, object> Getter { get; private set; }

        public Action<T, object> Setter { get; private set; }

        public Func<object, object> WrapperFactory { get; private set; }

        public bool WrapNull { get; private set; }
    }
}